package com.soft.mainsite.module.web.system.service;

import com.soft.mainsite.mybatis.model.TSysPermission;
import com.soft.mainsite.mybatis.model.TSysRole;
import com.soft.mainsite.mybatis.model.TSysRolePermission;

import java.util.List;

/**
 * Created by binary on 2017/4/14.
 *
 * @author Jin
 * @create 2017-07-26
 */
public interface RoleService {

    /**
     * 根据id查询
     *
     * @param id
     * @return
     */
    TSysRole findByid(Integer id);

    /**
     * 根据用户id查询
     *
     * @param userId
     * @return
     */
    List<TSysRole> findByUserId(Integer userId);

    /**
     * 删除
     *
     * @param id
     * @return
     */
    String delete(Integer id);

    /**
     * 更新
     *
     * @param role
     * @param permissionId
     * @return
     */
    String update(TSysRole role, Integer[] permissionId);

    /**
     * 保存
     *
     * @param role
     * @param permissionId
     * @return
     */
    String save(TSysRole role, Integer[] permissionId);

    /**
     * 查询所有
     *
     * @return
     */
    List<TSysRole> findAll();

    /**
     * 根据父id查询权限
     *
     * @param pid
     * @return
     */
    List<TSysPermission> findPermissonByPid(Integer pid);

    /**
     * 根据角色id查询权限
     *
     * @param roleId
     * @param permissionId
     * @return
     */
    Integer findPermissionCountByRoleId(Integer roleId, Integer permissionId);

    /**
     * 保存角色权限
     *
     * @param rolePermission
     * @return
     */
    Integer saveRolePermission(TSysRolePermission rolePermission);

    /**
     * 根据id查询权限
     *
     * @param pid
     * @return
     */
    TSysPermission findPermissonByid(Integer pid);

    /**
     * 保存
     *
     * @param permission
     * @return
     */
    String save(TSysPermission permission);

    /**
     * 更新
     *
     * @param permission
     * @return
     */
    String update(TSysPermission permission);

    /**
     * 根据id删除权限
     *
     * @param id
     * @return
     */
    String delectPermissionById(Integer id);

}
